Copyright (C) 2018 Ariadne Devos

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

# Known potential bugs

(BUG: lco-stackbounds, lco-coroutine)
Some tools described in lco.h are missing.

(BUG: autotools)
There is no ./configure && make mechanism.

(BUG: spectre)
There are no conditional branches (except for some sanity checks that can be
disabled). There is, however, an explicit indirect jump and a return instruction
in lco-x86-64.S that have not yet been retpolined. This is a bug.

(BUG: unportable)
lco only supports x86-64 (patches are welcome).

(BUG: testsuite)
The test suite is rather limited.

(BUG: slow)
x86-64 lco is suspectible to optimisation.

(BUG: save-x87-cw-exceptions)
The x87 control word is saved. According to some random x86-64 documentation on
the web, supposedly generated from Intel documentation, exceptions might be
raised if there are floating-point exceptions or something. I didn't really
know what is meant by that, and being no x87 assembly programmer, better now
an exception from the old coroutine than an exception moving from one to
another.

(BUG: incompatible-semantics)
GCC and Clang do not inspect assembly, so they must consider the assembly
function that does the switching to be possibly a memory fence(?) and
coroutines to be some kind of threads.

(BUG: publicity)
lco is not well known and has few users.

(BUG: infrastructure)
lco's project infrastructure is lacking. A gerrit instance, a mailing list,
continuous integration, a website? There is a public git repository, however.

(BUG: ipfs-git-auto)
The website is not generated automatically.
